Intelligent video tours

ABSTRACT

Intelligently crafting a dynamic video tour using a plurality of video devices selected in real time is provided. A list of attributes is received, the list of attributes describing at least one characteristic of a video device. A list of factors is continuously received, the list of factors describing one or more events, an event occurring at a point in time. A subset of the plurality of video devices is selected, based upon the received list of attributes and the received list of factors. The subset changes over time due to one or more changes in the list of factors. Video is displayed from the selected subset of the plurality of video devices as a tour, the displayed video changing over time as the selected subset changes over time.

PRIORITY TO EARLIER FILED PROVISIONAL PATENT APPLICATIONS

This application claims the benefit of the filing date of the followingearlier filed U.S. Provisional Patent Application Ser. No. 60/939,517,entitled “METHOD AND APPARATUS FOR EVENT CAPTURE, CROSS DEVICE EVENTCORRELATION, AND RESPONSIVE ACTIONS”, filed on May 22, 2007; Ser. No.60/939,503, entitled “METHOD AND APPARATUS FOR TRACKING PEOPLE ANDOBJECTS USING MULTIPLE LIVE AND RECORDED SURVEILLANCE CAMERA VIDEOFEEDS”, also filed on May 22, 2007; Ser. No. 60/939,521 entitled “METHODAND APPARATUS FOR INTELLIGENT VIDEO TOURS”, also filed on May 22, 2007;and Ser. No. 60/939,528, entitled “METHOD AND APPARATUS FOR OPTIMALROUTING OF AUDIO & VIDEO SIGNALS THROUGH HETEROGENEOUS NETWORKS”, alsofiled on May 22, 2007. These all share co-inventorship with the presentapplication. The entire teachings and contents of these ProvisionalPatent Applications are hereby incorporated by reference herein in theirentirety.

BACKGROUND

Securing an area from threats, both internal to the facility andexternal to it, has long been a desire of those who have something ofvalue that may be desirable to others located within the area. Earlyconventional security mechanisms involved placing guards at points ofentry to an area to be secured. Locks of differing strengths may alsohave been deployed on points of entry to the area, if the area wassurrounded by walls or gates. With increasing sophistication intechnology, guards were also deployed within areas (i.e., insidebuildings) to patrol, and badge readers and other electronic entrydevices were used to supplement locks.

Guards, however, are expensive to pay, and also capable of error.Particularly for larger facilities/facilities with many possible pointsof entry, it may not be possible to hire enough guards to “watch”everything going on. Thus, automated devices such as security camerashave also been added to the mix of security measures. The addition ofsecurity cameras meant that security personnel could “see” all of theinteresting areas of the facility (i.e., points of entry, locations werethings of valued were stored, etc.). However, an increase in the numberof cameras placed into a facility made it harder to watch all of thecameras simultaneously without hiring more personnel to watch thecameras. Doing so would remove the primary monetary advantage of usingcameras, that is, not having to employ more personnel.

One conventional solution to the “too many cameras” problem is forsecurity personnel to pay particular attention to a subset of all theavailable cameras. In this scenario, the question becomes which camerasto watch, and which cameras to ignore. Typically, the areas of highvalue and high risk (e.g., a vault, primary entry and exit points suchas the doors going in/out of a building, etc.) are given primary focus,and other areas of lesser value and/or risk are given secondary focus.These measures have served as an adequate defense against “low tech”threats (i.e., breaking and entering by common criminals).

SUMMARY

Conventional security mechanisms such as those explained above sufferfrom a variety of deficiencies. Instead of continuously walking around afacility or other area, security personnel may instead watch loops ofvideo from cameras spread around the facility. Video from cameras orother video devices may be placed in a so-called static video tour,which is then displayed to security personnel. A static video tour is apredefined list of video devices, arranged in a particular order, wherevideo from the first video device is shown first, video from the secondvideo device is shown second, and so on until video has been shown fromevery device on the list. At the end of the list, the video cycles backto the beginning of the list, and this process repeats itself. While astatic video tour removes the need for security personnel to constantlywalk or otherwise patrol a facility, the tour does not allow forsituations that may arise at any time. For example, a tour includingtwenty cameras, where the twelfth camera shows video of an exteriorwindow, will always show that video at the same interval of time in thestatic tour. If, immediately after the tour goes to the thirteenthcamera, an intruder breaks the window and enters the building, securitypersonnel will not see the broken glass or other signs of entry untilthe tour cycles back through the other eighteen cameras. By that time,an intruder may have already created a problem and left the facilitythrough the window.

Embodiments disclosed herein provide for creating one or more dynamicvideo tours that overcome the above-described and other deficiencies inconventional static video tours. Video from video devices on a dynamicvideo tour does not come from a predefined list. Rather, the list ofcameras/video devices is built on-the-fly, dynamically, from a list ofall possible devices, based on a set of attributes. An attribute maydescribe details that are unchanging about one or more video devices,such as location, or an ‘owner’ of a device. Thus, for example, adynamic video tour of the southeast section of building five would bepossible by appropriately specifying the location of the video devicesas attributes, as would a tour of that same section, but qualified byvideo devices marked as “secure”.

A dynamic video tour may be qualified by other factors as well that areless related to a video device and more related to things going on inthe facility being watched. For example, devices that are near areasthat are considered high priority areas (e.g., a bank vault) may beselected for a dynamic video tour. Alternatively, devices that are neardoors that open frequently, or doors that have previously been enteredby intruders, may be selected for a dynamic video tour. The point isthat the selection of video devices may be based on events, eithercurrent or past, and may also be weighted appropriately, and the camerasselected from that list may not be the same this time that the dynamictour is viewed versus the next time; i.e. it may change based on eventsand changing circumstances, as well as simply changing based on time ofday, and day of week.

More particularly, in an embodiment, there is provided a method ofintelligently crafting a dynamic video tour using a plurality of videodevices selected in real time. The method includes receiving a list ofattributes, the list of attributes describing at least onecharacteristic of a video device, and continuously receiving a list offactors, the list of factors describing one or more events, an eventoccurring at a point in time. The method also includes selecting asubset of the plurality of video devices based upon the received list ofattributes and the received list of factors, wherein the subset changesover time due to one or more changes in the list of factors, anddisplaying video from the selected subset of the plurality of videodevices as a tour, the displayed video changing over time as theselected subset changes over time.

In a related embodiment, continuously receiving a list of factors mayinclude receiving a first list of factors, the first list of factorsdescribing a first set of events, an event in the first set of eventsoccurring at a point in time; and selecting may include selecting asubset of the plurality of video devices based upon the received list ofattributes and the received first list of factors; and the method mayinclude receiving event data, the event data describing an occurrence ofone or more events; creating a second list of factors based on the firstlist of factors and the received event data, the second list of factorsdescribing a second set of events, the second set of events includes oneor more events described by the received event data; and selecting asubset of the plurality of video devices based upon the received list ofattributes and the created second list of factors. In a further relatedembodiment, receiving event data may include receiving event data, theevent data describing an occurrence of one or more events; and assigninga weight to one or more items of received event data, an assigned weightcorresponding to the event described by that item of received eventdata; and selecting may include selecting a subset of the plurality ofvideo devices based upon the received list of attributes and the createdsecond list of factors, wherein weights assigned to events described bythe second list of factors influence the selection of video devicesincluded in the subset of the plurality of video devices.

In another related embodiment, the method may include prior toselecting, assigning a weight to one or more factors in the list offactors, an assigned weight corresponding to the event described by thatfactor; and selecting may include selecting a subset of the plurality ofvideo devices based upon the received list of attributes and thereceived list of factors, wherein the subset changes over time due toone or more changes in the list of factors, and wherein weights assignedto factors in the list of factors influence the selection of videodevices included in the subset of the plurality of video devices.

In yet another related embodiment, receiving a list of attributes mayinclude receiving a list of attributes, the list of attributes includingone or more locations of a video device, a location describing an areaof interest to be included in a tour; and selecting may includeselecting a subset of the plurality of video devices based upon thelocations included in the received list of attributes and the receivedlist of factors, wherein the subset changes over time due to one or morechanges in the locations included in the list of attributes.

In still yet another related embodiment, displaying may include dividingthe selected subset of the plurality of video devices into a pluralityof groups; assigning, to each group in the plurality of groups, adisplay priority, the display priority indicating how often video fromthe video devices in that group should be displayed; and displayingloops of video as a tour, the video in a loop taken from video devicesin groups associated with that loop, the groups associated with a loopdetermined according to the display priority assigned to those groups,such that a group with a higher priority is always included in eachloop, and a group with a lower priority is included in a number of loopsless than the total number of loops.

In yet still another related embodiment, receiving a list of attributesmay include receiving a list of attributes, the list of attributesdescribing video devices associated with recorded video; andcontinuously receiving a list of factors may include receiving eventdata, the event data describing occurrences of one or more events thatoccurred in the past and were captured on recorded video; and selectingmay include selecting a subset of the plurality of video devices basedupon the received list of attributes and the received event data,wherein the subset changes over time due to one or more changes in thelist of attributes or in the received event data; and displaying mayinclude displaying recorded video from the selected subset of theplurality of video devices as a tour, each item of recorded video in thetour beginning at a first point in time prior to the occurrence of anevent captured on that recorded video and ending at a second point intime after the occurrence of the captured event.

In another embodiment, there is provided a computer program product,stored on computer readable medium, for intelligently crafting a dynamicvideo tour using a plurality of video devices selected in real time. Thecomputer program product includes computer program code for receiving alist of attributes, the list of attributes describing at least onecharacteristic of a video device; computer program code for continuouslyreceiving a list of factors, the list of factors describing one or moreevents, an event occurring at a point in time; computer program code forselecting a subset of the plurality of video devices based upon thereceived list of attributes and the received list of factors, whereinthe subset changes over time due to one or more changes in the list offactors; and computer program code for displaying video from theselected subset of the plurality of video devices as a tour, thedisplayed video changing over time as the selected subset changes overtime.

In another embodiment, there is provided a computer system. The computersystem includes a memory; a processor; a network interface; a display;and an interconnection mechanism coupling the memory, the processor, thedisplay, and the network interface, allowing communication therebetween. The memory of the computer system is encoded with a dynamictouring application, that when executed in the processor, provides adynamic touring process that intelligently crafts a dynamic video tourusing a plurality of video devices selected in real time, by causing thecomputer system to perform operations of: receiving a list ofattributes, the list of attributes describing at least onecharacteristic of a video device; continuously receiving a list offactors, the list of factors describing one or more events, an eventoccurring at a point in time; selecting a subset of the plurality ofvideo devices based upon the received list of attributes and thereceived list of factors, wherein the subset changes over time due toone or more changes in the list of factors; and displaying video fromthe selected subset of the plurality of video devices as a tour, thedisplayed video changing over time as the selected subset changes overtime.

Other arrangements of embodiments of the invention that are disclosedherein include software programs to perform the method embodiment stepsand operations summarized above and disclosed in detail below. Moreparticularly, a computer program product is one embodiment that has acomputer-readable medium including computer program logic encodedthereon that when performed in a computerized device provides associatedoperations providing client management of download sequence oforchestrated content as explained herein. The computer program logic,when executed on at least one processor with a computing system, causesthe processor to perform the operations (e.g., the methods) indicatedherein as embodiments of the invention. Such arrangements of theinvention are typically provided as software, code and/or other datastructures arranged or encoded on a computer readable medium such as butnot limited to an optical medium (e.g., CD-ROM, DVD-ROM, etc.), floppyor hard disk, a so-called “flash” (i.e., solid state) memory medium, orother physical medium, such as but not limited to firmware or microcodein one or more ROM or RAM or PROM chips, or as an Application SpecificIntegrated Circuit (ASIC), or as downloadable software images in one ormore modules, shared libraries, etc. The software or firmware or othersuch configurations can be installed onto a computerized device to causeone or more processors in the computerized device to perform thetechniques explained herein as embodiments of the invention. Softwareprocesses that operate in a collection of computerized devices, such asin a group of data communications devices or other entities may alsoprovide the system of the invention. The system of the invention may bedistributed between many software processes on several datacommunications devices, or all processes may run on a small set ofdedicated computers, or on one computer alone.

It is to be understood that embodiments of the invention may be embodiedstrictly as a software program, as software and hardware, or as hardwareand/or circuitry alone. The features disclosed and explained herein maybe employed in computerized devices and software systems for suchdevices such as those manufactured by Vidsys, Inc. of Marlborough, Mass.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing will be apparent from the following description ofparticular embodiments disclosed herein, as illustrated in theaccompanying drawings in which like reference characters refer to thesame parts throughout the different views. The drawings are notnecessarily to scale, emphasis instead being placed upon illustratingthe principles disclosed herein.

FIG. 1 shows a high-level block diagram of a computer system accordingto one embodiment disclosed herein.

FIG. 2 illustrates a flowchart of a procedure performed by the system ofFIG. 1 when creating a dynamic video tour based on one or moreattributes of video devices and one or more factors describing events.

FIG. 3 illustrates a flowchart of a procedure performed by the system ofFIG. 1 when creating a dynamic video tour using event data.

FIG. 4 illustrates a flowchart of a procedure performed by the system ofFIG. 1 when creating a dynamic video tour using location data.

FIG. 5 illustrates a flowchart of a procedure performed by the system ofFIG. 1 when looping through video from video devices in a dynamic videotour, where each loop contains video from varying devices.

FIG. 6 illustrates a flowchart of a procedure performed by the system ofFIG. 1 when creating a dynamic video tour to review recorded video ofpast events.

DETAILED DESCRIPTION

Generally, disclosed embodiments provide methods and apparatus forintelligently crafting a dynamic video tour using information receivedfrom external sources that causes a set of video devices displaying thevideo of the tour to change over time. A dynamic video tour thusincludes video from video devices selected a list of all possible videodevices, based on a list of attributes and a set of factors. Attributesmay describe details that are unchanging about video devices. Factorsare less related to the devices and are more related to things going onin the local (i.e., events), either current or past. Further, factorsmay be weighted based on data about events, or in other ways.Embodiments select video devices to provide video for the dynamic touron the fly, and in some embodiments, the ordering of devices in the touris also determined on the fly; in both cases, changes in attributes,factors, and the like over time, based on changes in the area beingwatched via tour, may also result in corresponding changes in thedynamic tour.

More particularly, FIG. 1 is a block diagram illustrating examplearchitecture of a computer system 110 that executes, runs, interprets,operates or otherwise performs a dynamic touring application 140-1 and adynamic touring process 140-2 suitable for use in explaining exampleconfigurations disclosed herein. The computer system 110 may be any typeof computerized device such as a personal computer, workstation,portable computing device, console, laptop, network terminal or thelike. As shown in this example, the computer system 110 includes aninterconnection mechanism 111 such as a data bus or other circuitry thatcouples a memory system 112, a processor 113, an input/output interface114, and a communications interface 115. An input device 116 (e.g., oneor more user controlled devices such as a keyboard, mouse, touchpad,trackball, etc.) couples to the processor 113 through the I/O interface114 and enables a user 108 such as a web page developer to provide inputcommands and generally control a graphical user interface 160 shown on adisplay 130. The communications interface 115 enables the computersystem 110 to communicate with other devices (e.g., other computers) ona network (not shown in FIG. 1).

The memory system 112 is any type of computer readable medium and inthis example is encoded with a dynamic touring application 140-1. Thedynamic touring application 140-1 may be embodied as software code suchas data and/or logic instructions (e.g., code stored in the memory or onanother computer readable medium such as a removable disk) that supportsprocessing functionality according to different embodiments describedherein. During operation of the computer system 110, the processor 113accesses the memory system 112 via the interconnection mechanism 111 inorder to launch, run, execute, interpret or otherwise perform the logicinstructions of the dynamic touring application 140-1. Execution of thedynamic touring application 140-1 in this manner produces processingfunctionality in a dynamic touring process 140-2. In other words, thedynamic touring process 140-2 represents one or more portions or runtimeinstances of the dynamic touring application 140-1 performing orexecuting within or upon the processor 113 in the computer system 110 atruntime.

It is noted that example configurations disclosed herein include thedynamic touring application 140-1 itself including the dynamic touringprocess 140-2 (i.e., in the form of un-executed or non-performing logicinstructions and/or data). The dynamic touring application 140-1 may bestored on a computer readable medium (such as a floppy disk), hard disk,electronic, magnetic, optical or other computer readable medium. Thedynamic touring application 140-1 may also be stored in a memory system112 such as in firmware, read only memory (ROM), or, as in this example,as executable code in, for example, Random Access Memory (RAM). Inaddition to these embodiments, it should also be noted that otherembodiments herein include the execution of the dynamic touringapplication 140-1 in the processor 113 as the dynamic touring process140-2. Those skilled in the art will understand that the computer system110 may include other processes and/or software and hardware components,such as an operating system not shown in this example.

The display 130 need not be coupled directly to computer system 110. Forexample, the dynamic touring application 140-1 may be executed on aremotely accessible computerized device via the network interface 115.In this instance, the graphical user interface 160 may be displayedlocally to a user of the remote computer and execution of the processingherein may be client-server based. In some embodiments, the graphicaluser interface 160 may be a customer interface through which a user,such as the user 108, is able to learn various information and takevarious actions. The amount of features, and control thereof, may dependon a user level, such that a basic user has access to only a certainamount of features, while an administrator may have access to allavailable features. Key features of the graphical user interface 160 mayinclude the ability to locate and activate cameras easily from asearchable directory; the ability to locate and activate cameras easilyfrom a map representation; the ability to control Cameras and NDVRs toeffect Pan-Tilt-Zoom (PTZ), Iris, Focus, Playback, etc.; the ability tolist and get details on incoming events; the ability to locate peopleand use collaboration tools to interact with them; the ability to locateshared folders and reference and active files; the ability to controlvideo walls; the ability to virtually track one or more targets overtime, which are described in detail in co-pending U.S. patentapplication Ser. No. 12/125,122, entitled “TRACKING PEOPLE AND OBJECTSUSING MULTIPLE LIVE AND RECORDED SURVEILLANCE CAMERA VIDEO FEEDS”, theentirety of which is hereby incorporated by reference; andadministrative features such as but not limited tocreate/modify/list/delete users, roles, tours, devices, etc.

FIGS. 2-6 are flowcharts of various embodiments of the dynamic touringprocess 140-2. The rectangular elements are herein denoted “processingblocks” and represent computer software instructions or groups ofinstructions. Alternatively, the processing blocks represent stepsperformed by functionally equivalent circuits such as a digital signalprocessor circuit or an application specific integrated circuit (ASIC).The flowcharts do not depict the syntax of any particular programminglanguage. Rather, the flowcharts illustrate the functional informationone of ordinary skill in the art requires to fabricate circuits or togenerate computer software to perform the processing required inaccordance with the present invention. It should be noted that manyroutine program elements, such as initialization of loops and variablesand the use of temporary variables are not shown. It will be appreciatedby those of ordinary skill in the art that unless otherwise indicatedherein, the particular sequence of steps described is illustrative onlyand may be varied without departing from the spirit of the invention.Thus, unless otherwise stated, the steps described below are unordered,meaning that, when possible, the steps may be performed in anyconvenient or desirable order.

FIG. 2 illustrates an embodiment of the dynamic touring application140-1, executing as the dynamic touring process 140-2, to create one ormore dynamic video tours as described herein. The dynamic touringprocess 140-2 crafts a dynamic video tour using a plurality of videodevices selected in real time. The dynamic touring process 140-2 firstreceives a list of attributes, the list of attributes describing atleast one characteristic of a video device, step 201. That is, anattribute might be, for example, a location of a video device, or anarea at which the video device points, or a preset setting of a videodevice, and so on. In the case of location, receiving the locationallows a user to view a video tour that shows a specific area, such asall the entryways of a building, or a more general location, such as asampling of all the floors of a building, or all the buildings in afacility. Any geographic breakdown may be used to specify location, fromcity blocks to political demographics, that is, precincts or wards, andso on. Further embodiments dealing with location-based attributes aredescribed in greater detail with regards to FIG. 4 below. Note that someattributes may change over time, and in such situations, the dynamictouring process 140-2 may continuously receive a list of attributes overa period of time.

An attribute may also be the owner of a video device. For example, inthe case of multiple companies having space in the same building,knowing the owner of the video devices would allow a user to create atour of video from only those devices that belong to a particularorganization.

The dynamic touring process 140-2 next continuously receives a list offactors, the list of factors describing one or more events, an eventoccurring at a point in time, step 202. Events may be anything thatoccurs and is otherwise detected, either by the dynamic touring process140-2 itself, or by other process(es) to which the dynamic touringprocess 140-2 has access, or otherwise receives data from. The list offactors may also include time-based data. That is, the list of factorsmay identify how long an event occurred, and thus how long the dynamictouring process 140-2 should consider including the related video. Insome embodiments, the list of factors includes time-based data thatdescribes when the dynamic touring process 140-2 should show video in atour. For example, the list of factors may include time data based onthe time of day, such as but not limited to, when rush hour trafficstarts and ends, when the sun sets and rises, when buildings close andopen, when local events (movies, sporting events, theater productions,church services, etc.) start and end, and so on. In some embodiments,the list of factors may include time data based on the time and/or dayof week, such as but not limited to traffic flows on weekdays versusweekends and/or holidays, and expected delivery and/or pickup times, aswell as delivery schedules. The list of factors may also include timedata based on time of year, such as holiday schedules (e.g.,Christmas-season hours for businesses), holiday occurrences (Halloween,Fourth of July), and so on. In some embodiments, the list of factors mayinclude historical-based data, such as but not limited to areas in whichevents have previously occurred. Thus, in some embodiments, the dynamictouring process 140-2 may employ such data to create a dynamic videotour that is predictive, that is, shows video of areas the dynamictouring process 140-2 predicts where events may occur at a later time.Further embodiments dealing with event-based factors and processingthereof are described in greater detail with regards to FIG. 3 below.

The dynamic touring process 140-2 then selects a subset of the pluralityof video devices based upon the received list of attributes and thereceived list of factors, step 203. The subset changes over time due toone or more changes in the list of factors. For example, one of thefactors on the received list of factors may be when rush hour trafficpeaks (i.e., exceeds a particular threshold). That is, the dynamictouring process 140-2 is to include, as part of the tour, video oftraffic at a particular intersection when rush hour traffic through thatintersection exceeds a set amount. The moment(s) in time when rush hourtraffic exceeds the threshold is likely to change from day to day andwithin days as well. Thus, the video tour created by the dynamic touringprocess 140-2 for that day is likely to change at least one if not manytimes during rush hour as traffic at the intersection exceeds the setamount. Alternatively, when one or more received attributes change overtime, and the dynamic touring process 140-2 receives those changes, theselection of the subset by the dynamic touring process 140-2 may changedue to attribute changes instead of factor changes. In some embodiments,the selection of the subset by the dynamic touring process 140-2 changesas a result of both attribute changes and factor changes.

Finally, the dynamic touring process 140-2 displays video from theselected subset of the plurality of video devices as a tour, thedisplayed video changing over time as the selected subset changes overtime, step 204. That is, the dynamic touring process 140-2 takes a listof the selected subset of the plurality of video devices as well as thedurations for which it is to show video from those devices. The dynamictouring process 140-2 will string those together, such as, in someembodiments, by using a connection engine, and create the tour. Thedynamic touring process 140-2 is configured such that, if video is notavailable at any time, for any reason (e.g., errors, device(s) notavailable at this time, or for this user, latency of changing paths,etc.), the dynamic touring process 140-2 will not show a blank screen orspot in a tour. Also, in some embodiments, the dynamic touring process140-2 may have a list of one or more references to device presetpositions for devices in the selected subset, such that, prior to takingvideo from a device, the dynamic touring process 140-2 sends a commandto that device to move to a particular preset. The dynamic touringprocess 140-2 is able to command a video device to switch betweenpresets as needed within the same tour.

In some embodiments, the dynamic touring process 140-2, prior toselecting, assigns a weight to one or more factors in the list offactors, step 205. A weight assigned by the dynamic touring process140-2 corresponds to the event described by that factor. The dynamictouring process 140-2 may assign weights to any video device as a wayof, for example, making sure that a particular device is likely to beselected, or not be selected. That is, by assigning a particular videodevice a high weight, unless there is a reason to ignore the weight,this will probably cause the dynamic touring process 140-2 to selectthat device. The dynamic touring process 140-2 may assign a weight basedon user input (i.e., user commands the dynamic touring process 140-2 toweight one or more devices according to weights provided by the user),or through interaction with other processes that assign weights to videodevices/events, or in any known manner.

The dynamic touring process 140-2 then selects a subset of the pluralityof video devices based upon the received list of attributes and thereceived list of factors, wherein the subset changes over time due toone or more changes in the list of factors, and wherein weights assignedto factors in the list of factors influence the selection of videodevices included in the subset of the plurality of video devices, step206. In other words, the dynamic touring process 140-2 may take theweight into account but the weights need not be dispositive. That is, insome embodiments, the dynamic touring process 140-2 may select a videodevice with a higher assigned weight over an otherwise similar videodevice with a lower assigned weight. However, in some embodiments, thedynamic touring process 140-2 may ignore any assigned weights and selectvideo devices as otherwise described herein.

In FIG. 3, the dynamic touring process 140-2 uses event-based data tocraft a tour. The dynamic touring process 140-2 first receives a list ofattributes, the list of attributes describing at least onecharacteristic of a video device, step 301. The dynamic touring process140-2 next continuously receives a list of factors, the list of factorsdescribing one or more events, an event occurring at a point in time,step 302. More particularly, the dynamic touring process 140-2 receivesa first list of factors, the first list of factors describing a firstset of events, an event in the first set of events occurring at a pointin time, step 305. As described above, an event is simply something thattakes place and is, in some manner, recorded or otherwise noticed by adevice to which the dynamic touring process 140-2 has access. Thus, forexample, when a person uses a security badge at a badge reader at thedoor to a particular room, to enter that room, the security event datamay include the id number of the badge and the location of the badgereader. The event would be using the security badge. A further event maybe the opening and closing of the door, if there is a sensor on the doorcapable of noticing that event. The event data for such a thing would bea reading from the sensor, first indicating the opening of the door, andthen indicating the shutting of the door.

The number of devices that may serve as sources of event data for thedynamic touring process 140-2 is large. In some embodiments, event datais filtered through, and received by the dynamic touring process 140-2from, an event engine/event and rules correlating process described indetail in co-pending U.S. patent application Ser. No. 12/125,115,entitled “EVENT CAPTURE, CROSS DEVICE EVENT CORRELATION, AND RESPONSIVEACTIONS”, the entirety of which is hereby incorporated by reference.Thus, in some embodiments, the dynamic touring process 140-2 may makeuse of not only event data but also may create rules so as to craft adynamic video tour. That is, a tour may be composed by having a numberof video devices, in response to events, turn on and send their data tothe dynamic touring process 140-2 for display.

The dynamic touring process 140-2 selects a subset of the plurality ofvideo devices based upon the received list of attributes and thereceived list of factors, step 303. The subset changes over time due toone or more changes in the list of factors. Here, the dynamic touringprocess 140-2 selects a subset of the plurality of video devices basedupon the received list of attributes and the received first list offactors, step 306. The dynamic touring process 140-2 displays video fromthe selected subset of the plurality of video devices as a tour, thedisplayed video changing over time as the selected subset changes overtime, step 304.

Event data is likely to change over time. For example, a door to a vaultthat was shut until one second ago opens, and then shuts again tenminutes later; a sensor may detect an increase in traffic at anintersection as the day goes on; and so on. The dynamic touring process140-2 must be able to change a tour as event data changes. Thus, whiledisplaying a tour, the dynamic touring process 140-2 may receive eventdata, the event data describing an occurrence of one or more events,step 307. Event data may include, but is not limited to, a door and/orwindow rattling, calls made to a police dispatcher or to 911, and so on.

As the dynamic touring process 140-2 receives (further) event data, thedynamic touring process 140-2 may create a second list of factors basedon the first list of factors and the received event data, the secondlist of factors describing a second set of events, the second set ofevents includes one or more events described by the received event data,step 308. Thus, for example, the second list of factors may includeupdates made to factors contained in the first list of factors. That is,the second list of factors may describe what traffic is like at anyintersection at 4:30 PM while the first group of factors describedtraffic at that same intersection but at 4:00 PM. The dynamic touringprocess 140-2 then selects a subset of the plurality of video devicesbased upon the received list of attributes and the created second listof factors, step 309. The dynamic touring process 140-2 thus changes theselected subset in accordance with the changes made in the second listof factors. Of course the dynamic touring process 140-2 may repeat thisprocess as many times as necessary, including, in some embodiments,while or after displaying video from just a single device in theoriginal selected subset.

In some embodiments, the dynamic touring process 140-2 may combinechanges in event data with time data while crafting a tour. For example,the dynamic touring process 140-2 may select video devices nearlocations in which an event occurred, or changed, within the last fiveminutes, though of course any time may be used. Such a tour as createdby the dynamic touring process 140-2 essentially becomes a rolling touras the event data comes in and time moves forward.

In some embodiments, the dynamic touring process 140-2 receives eventdata, the event data describing an occurrence of one or more events,step 310, and then assigns a weight to one or more items of receivedevent data, an assigned weight corresponding to the event described bythat item of received event data, step 311. The dynamic touring process140-2 then selects a subset of the plurality of video devices based uponthe received list of attributes and the created second list of factors,wherein weights assigned to events described by the second list offactors influence the selection of video devices included in the subsetof the plurality of video devices, step 312.

The dynamic touring process 140-2 may assign weights in any number ofways. For example, the dynamic touring process 140-2 may assign thejiggling of a door handle a lesser weight than the breaking of a window.Further, weights may be based on duration as well as time of day. Thatis, the dynamic touring process 140-2 may assign weights to events suchthat, the same door handle being jiggled five times in a week isassigned a lesser weight than the same door handle being jiggled fivetimes in a minute. Further, the dynamic touring process 140-2 may assignweights such that, a door handle being jiggled at noon, while thebuilding is full of people, has a lesser weight than a door handle beingjiggled at midnight, after the building has been unoccupied for hours.

In some embodiments, the dynamic touring process 140-2 may assignweights based on an increase in a value accumulator in an eventaccumulator, such as is described in detail in co-pending U.S. patentapplication Ser. No. 12/125,115, entitled “EVENT CAPTURE, CROSS DEVICEEVENT CORRELATION, AND RESPONSIVE ACTIONS”, the entirety of which ishereby incorporated by reference. Thus, one or more events occur moreand more, so that the value in the accumulator rises, which may causethe dynamic touring process 140-2 assigns weights to nearby videodevices. Those assigned weights may themselves increase over time. Theweights may cause the dynamic touring process 140-2 to always select, ormore frequently select, those video devices. Alternatively, oradditionally in some embodiments, the weights may be assigned based on ahistory or status of an area covered by the video devices.

FIG. 4 illustrates an embodiment where the dynamic touring process 140-2uses location-based data when creating a dynamic video tour. That is,the dynamic touring process 140-2 first receives a list of attributes,the list of attributes describing at least one characteristic of a videodevice, step 401, and more particularly, the dynamic touring process140-2 receives a list of attributes, the list of attributes includingone or more locations of a video device, a location describing an areaof interest to be included in a tour, step 405. For example, a list ofattributes may include video devices located in and around a bank vault,or outside the primary entrance gate to a walled complex. In someembodiments, the dynamic touring process 140-2 interfaces with aso-called geo engine, such as is disclosed in co-pending U.S. patentapplication Ser. No. 12/125,122, entitled “TRACKING PEOPLE AND OBJECTSUSING MULTIPLE LIVE AND RECORDED SURVEILLANCE CAMERA VIDEO FEEDS”, theentirety of which is hereby incorporated by reference. The geo engine asdisclosed therein receives location-based data and makes variousdecisions based on that data to select one or more video devices for usein tracking a target. Here, the geo engine would instead use thereceived location-based data for, for example, identifying video devicesthat may be of use in creating a video tour. That is, using the bankvault example above, the vault may be surrounded by twelve videodevices. Not all of those devices may be necessary to properly show thearea surrounding the vault. The geo engine is able to use, for example,the locations of those devices and location of the vault to, as need,parse down the twelve devices into a smaller number. The geo enginewould then pass along the locations of those remaining devices to thedynamic touring process 140-2. The geo engine may, in some embodiments,also use event-based data in making its determinations. For example,continuing the bank vault example, the geo engine may incorporate sensordata that shows were the most foot traffic around the vault occurs, andidentify video devices that cover those areas as being of primaryimportance. Of course the geo engine is able to use a variety ofevent-based data and is also able to take video device presets intoaccount.

The dynamic touring process 140-2 next continuously receives a list offactors, the list of factors describing one or more events, an eventoccurring at a point in time, step 402. The dynamic touring process140-2 selects a subset of the plurality of video devices based upon thereceived list of attributes and the received list of factors, step 403.The subset changes over time due to one or more changes in the list offactors. Here, the dynamic touring process 140-2 selects a subset of theplurality of video devices based upon the locations included in thereceived list of attributes and the received list of factors, whereinthe subset changes over time due to one or more changes in the locationsincluded in the list of attributes. Thus, for example, in someembodiments, a user of the dynamic touring process 140-2 may wish toshow the locations of all snow plows out to plow during a snowstorm.Each snowplow has a GPS (global positioning satellite) transponder andthis GPS data is received by the dynamic touring process 140-2. Thedynamic touring process 140-2 is able to correlate that GPS data withthe locations of all available video devices, so as to identify thevideo devices nearest each snow plow at any given time. As the snowplows drive around, their locations will change, and thus thelocation(s) of the video devices nearest each snow plow will alsochange. The dynamic touring process 140-2 receives the changes in thelocations and acts accordingly. In some embodiments, as described above,the dynamic touring process 140-2 may use another process or component,such as the geo engine, to at least assist in making decisions regardinglocation-based data and the video devices that should be selected basedon location data.

In some embodiments, the dynamic touring process 140-2 may make us of anexpected or otherwise predicted path from a tracking application incrafting a dynamic tour. For example, the dynamic touring process 140-2may receive a predicted escape route for a vehicle looking to leave acity, as well as a last known location of the vehicle. Using the data,the dynamic touring process 140-2 would select appropriate video devicesincluding the video device covering the last known location and videodevices along the predicted path. The dynamic touring process 140-2would then create a tour using, perhaps among other devices, thesedevices along the predicted path. In some embodiments, the dynamictouring process 140-2 may use multiple predicted paths, and may includedevices from many such paths in a tour. Further, in some embodiments,the dynamic touring process 140-2 may interface with a trackingapplication that weighs the possible predicted paths in terms of mostlikely to be used to least likely to be used. The dynamic touringprocess 140-2 may then use those weights in selecting the video devicesfor the tour.

Finally, the dynamic touring process 140-2 displays video from theselected subset of the plurality of video devices as a tour, thedisplayed video changing over time as the selected subset changes overtime, step 404.

In FIG. 5, the dynamic touring process 140-2 selects different groupingsof video devices from which to play video for loops that comprise adynamic tour. For example, the dynamic touring process 140-2 may alwaysuse video from a first group of video devices in each loop of a tour,while the dynamic touring process 140-2 uses video from a different partof a second group of video devices for each different loop. The dynamictouring process 140-2 first receives a list of attributes, the list ofattributes describing at least one characteristic of a video device,step 501. In some embodiments, the list of attributes may includegroupings of video devices. Video devices may be grouped in any numberof ways. For example, a user may determine which video devices belong toa group. Alternatively, the dynamic touring process 140-2 may itselfdivide video devices into groups, such as is described in greater detailbelow.

The dynamic touring process 140-2 next continuously receives a list offactors, the list of factors describing one or more events, an eventoccurring at a point in time, step 502. The dynamic touring process140-2 selects a subset of the plurality of video devices based upon thereceived list of attributes and the received list of factors, step 503.The subset changes over time due to one or more changes in the list offactors.

Finally, the dynamic touring process 140-2 displays video from theselected subset of the plurality of video devices as a tour, thedisplayed video changing over time as the selected subset changes overtime, step 504. More particularly, prior to displaying video, thedynamic touring process 140-2 divides the selected subset of theplurality of video devices into a plurality of groups, step 505. Thedynamic touring process 140-2 may determine which video devices belongto which group or groups in any number of ways. For example, the dynamictouring process 140-2 may use the location of video devices to determinegroups. Thus, the dynamic touring process 140-2 may have location datafor each video device among the received list of attributes, and thedynamic touring process 140-2 may decide that all video devices on thefirst floor of a building belong to a first group, that all devices onthe second floor belong to a second group, and so on.

The dynamic touring process 140-2 then assigns, to each group in theplurality of groups, a display priority, the display priority indicatinghow often video from the video devices in that group should bedisplayed, step 506. Continuing the above example, say the fifth floorof the building contains a number of vaults. Vaults, of course,typically contain items of great value. The dynamic touring process140-2, knowing about the vaults, perhaps from the received set offactors or from the received list of attributes, would assign the fifthgroup (containing the devices on the fifth floor) a very high displaypriority. A user would likely want to see that video as often aspossible. At the same time, the third floor and seventh floor of thebuilding contain no easily accessible entry points, and otherwise havenothing of value. The dynamic touring process 140-2 may assign the thirdgroup and the seventh group lower display priorities as a result. A userwould likely not need to see video from both of those groups in eachloop, but perhaps only one group per loop, or one group every otherloop. Of course, a user could override such decisions by instructing thedynamic touring process 140-2 on how to create groups, which priority toassign to which group, or both. Thus, the dynamic touring process 140-2may use user input, or data from the received list of attributes, or thereceived list of factors, or data from other sources, or combinations ofall these, to both group video devices and to assign them displaypriority.

Finally, the dynamic touring process 140-2 displays loops of video as atour, the video in a loop taken from video devices in groups associatedwith that loop, the groups associated with a loop determined accordingto the display priority assigned to those groups, such that a group witha higher priority is always included in each loop, and a group with alower priority is included in a number of loops less than the totalnumber of loops, step 507. Thus, continuing the above example, in everyloop of the video tour, the dynamic touring process 140-2 shows videofrom the devices that are in the fifth group, because of the vaultslocated on the fifth floor of the building. As part of the first loop,the dynamic touring process 140-2 shows video from only the third group,and not the seventh group, even though those two groups have the same(lower) display priority. On the next loop, the dynamic touring process140-2 may show video from the seventh group, and not the third group,and so on.

In some embodiments, the dynamic touring process 140-2 may, for groupswith a lower assigned display priority, use video from only a portion ofthe devices in that group, instead of all the devices in that group.Thus, if the third group of devices included fifty devices, in the firstloop, the dynamic touring process 140-2 might show video from tendevices in the group, while in the second loop, the dynamic touringprocess 140-2 showed video from a different ten devices, and so on. Thedynamic touring process 140-2 may, of course, determine portions of agroup using any techniques described herein. For example, the dynamictouring process 140-2 may divide a group into portions based ongeographic location, user input, present or past events, and so on.

FIG. 6 illustrates an embodiment in which the dynamic touring process140-2 allows a user to view, as a tour, recorded video of past events.For example, a security personnel supervisor may arrive at work in themorning and wish to see video related to events that happened the nightbefore. Of course, each time the dynamic touring process 140-2 createdsuch a review tour for a user, the tour would differ due to changes intimes, events, and so on that happened in the past. The dynamic touringprocess 140-2 first receives a list of attributes, the list ofattributes describing at least one characteristic of a video device,step 601. Here, the dynamic touring process 140-2 receives a list ofattributes, the list of attributes describing video devices associatedwith recorded video, step 605. The video devices associated withrecorded video may, in some embodiments, be NVRs that stored therecorded video of interest. The NVRs would be connected to the videodevices that recorded the events in real time.

The dynamic touring process 140-2 next continuously receives a list offactors, the list of factors describing one or more events, an eventoccurring at a point in time, step 602. Here, for a review tour, thedynamic touring process 140-2 receives event data, the event datadescribing occurrences of one or more events that occurred in the pastand were captured on recorded video, step 606. An event may be anyoccurrence as described herein according to event data. The dynamictouring process 140-2 has access to event data describing all the eventsof, for example, the past night or past week or whatever the reviewperiod is. Thus, for example, if during the previous night, a securityperson accidently tripped an alarm connected to a sensor, and a videodevice captured video of this, it would be an event, described in eventdata. The dynamic touring process 140-2 would receive this event dataand be able to determine which video device, and thus which NVR,contained the video of the event. The dynamic touring process 140-2would also know how long the event occurred in terms of which segmentsof the recorded video pertained to an event.

The dynamic touring process 140-2 selects a subset of the plurality ofvideo devices based upon the received list of attributes and thereceived list of factors, step 603, where the subset changes over timedue to one or more changes in the list of factors. Here, the dynamictouring process 140-2 selects, such as in the example above, a subset ofthe plurality of video devices based upon the received list ofattributes and the received event data, wherein the subset changes overtime due to one or more changes in the list of attributes or in thereceived event data. The dynamic touring process 140-2 selects as manyNVRs as needed in order to show video of all the events that occurredduring the review period. In some situations, of course, the dynamictouring process 140-2 may need to select only a single NVR, or may needtwo (or more) different segments of video from the same NVR.

Finally, the dynamic touring process 140-2 displays video from theselected subset of the plurality of video devices as a tour, thedisplayed video changing over time as the selected subset changes overtime, step 604. More particularly here, the dynamic touring process140-2 displays recorded video from the selected subset of the pluralityof video devices as a tour, each item of recorded video in the tourbeginning at a first point in time prior to the occurrence of an eventcaptured on that recorded video and ending at a second point in timeafter the occurrence of the captured event. Thus, for example, as thedynamic touring process 140-2 played video from a selected NVRcorresponding to an event, the dynamic touring process 140-2 would havethe NVR start playback from some number of seconds before the event, andconclude playback for some number of seconds after the event occurred.

In some embodiments, the dynamic touring process 140-2 may interfacewith a virtual tracking application, such as is described in detail inco-pending U.S. patent application Ser. No. 12/125,122, entitled“TRACKING PEOPLE AND OBJECTS USING MULTIPLE LIVE AND RECORDEDSURVEILLANCE CAMERA VIDEO FEEDS”, the entirety of which is herebyincorporated by reference. The virtual tracking application may, whileallowing a user to track a target of interest, store the video devicesused during tracking, as well as the duration each device participatedin tracking, in a log file. The dynamic touring process 140-2 may thenreceive the tracking log file from the virtual tracking application, andplay it back as a dynamic video tour. In such a situation, the videowould come from Network Video Recorders (NVRs) connected to the videodevices as logged by the virtual tracking application.

The methods and systems described herein are not limited to a particularhardware or software configuration, and may find applicability in manycomputing or processing environments. The methods and systems may beimplemented in hardware or software, or a combination of hardware andsoftware. The methods and systems may be implemented in one or morecomputer programs, where a computer program may be understood to includeone or more processor executable instructions. The computer program(s)may execute on one or more programmable processors, and may be stored onone or more storage medium readable by the processor (including volatileand non-volatile memory and/or storage elements), one or more inputdevices, and/or one or more output devices. The processor thus mayaccess one or more input devices to obtain input data, and may accessone or more output devices to communicate output data. The input and/oroutput devices may include one or more of the following: Random AccessMemory (RAM), Redundant Array of Independent Disks (RAID), floppy drive,CD, DVD, magnetic disk, internal hard drive, external hard drive, memorystick, flash memory (i.e., solid state memory) device, or other storagedevice capable of being accessed by a processor as provided herein,where such aforementioned examples are not exhaustive, and are forillustration and not limitation.

The computer program(s) may be implemented using one or more high levelprocedural or object-oriented programming languages to communicate witha computer system; however, the program(s) may be implemented inassembly or machine language, if desired. The language may be compiledor interpreted.

As provided herein, the processor(s) may thus be embedded in one or moredevices that may be operated independently or together in a networkedenvironment, where the network may include, for example, a Local AreaNetwork (LAN), wide area network (WAN), and/or may include an intranetand/or the internet and/or another network. The network(s) may be wiredor wireless or a combination thereof and may use one or morecommunications protocols to facilitate communications between thedifferent processors. The processors may be configured for distributedprocessing and may utilize, in some embodiments, a client-server modelas needed. Accordingly, the methods and systems may utilize multipleprocessors and/or processor devices, and the processor instructions maybe divided amongst such single- or multiple-processor/devices.

The device(s) or computer systems that integrate with the processor(s)may include, for example, a personal computer(s), workstation(s) (e.g.,Sun, HP), personal digital assistant(s) (PDA(s)), handheld device(s)such as cellular telephone(s), laptop(s), handheld computer(s), oranother device(s) capable of being integrated with a processor(s) thatmay operate as provided herein. Accordingly, the devices provided hereinare not exhaustive and are provided for illustration and not limitation.

References to “a microprocessor” and “a processor”, or “themicroprocessor” and “the processor,” may be understood to include one ormore microprocessors that may communicate in a stand-alone and/or adistributed environment(s), and may thus be configured to communicatevia wired or wireless communications with other processors, where suchone or more processor may be configured to operate on one or moreprocessor-controlled devices that may be similar or different devices.Use of such “microprocessor” or “processor” terminology may thus also beunderstood to include a central processing unit, an arithmetic logicunit, an application-specific integrated circuit (IC), and/or a taskengine, with such examples provided for illustration and not limitation.

Furthermore, references to memory, unless otherwise specified, mayinclude one or more processor-readable and accessible memory elementsand/or components that may be internal to the processor-controlleddevice, external to the processor-controlled device, and/or may beaccessed via a wired or wireless network using a variety ofcommunications protocols, and unless otherwise specified, may bearranged to include a combination of external and internal memorydevices, where such memory may be contiguous and/or partitioned based onthe application. Accordingly, references to a database may be understoodto include one or more memory associations, where such references mayinclude commercially available database products (e.g., SQL, Informix,Oracle) and also proprietary databases, and may also include otherstructures for associating memory such as links, queues, graphs, trees,with such structures provided for illustration and not limitation.

References to a network, unless provided otherwise, may include one ormore intranets and/or the internet. References herein to microprocessorinstructions or microprocessor-executable instructions, in accordancewith the above, may be understood to include programmable hardware.

Unless otherwise stated, use of the word “substantially” may beconstrued to include a precise relationship, condition, arrangement,orientation, and/or other characteristic, and deviations thereof asunderstood by one of ordinary skill in the art, to the extent that suchdeviations do not materially affect the disclosed methods and systems.

Throughout the entirety of the present disclosure, use of the articles“a” or “an” to modify a noun may be understood to be used forconvenience and to include one, or more than one of the modified noun,unless otherwise specifically stated.

Elements, components, modules, and/or parts thereof that are describedand/or otherwise portrayed through the figures to communicate with, beassociated with, and/or be based on, something else, may be understoodto so communicate, be associated with, and or be based on in a directand/or indirect manner, unless otherwise stipulated herein.

Although the methods and systems have been described relative to aspecific embodiment thereof, they are not so limited. Obviously manymodifications and variations may become apparent in light of the aboveteachings. Those skilled in the art may make many additional changes inthe details, materials, and arrangement of parts, herein described andillustrated.

1. A method of creating a dynamic video tour using video devices, themethod comprising: receiving a list of attributes, the list ofattributes describing attributes of the video devices; continuouslyreceiving a list of factors, the list of factors including historicaldata specifying areas in which events have occurred in the past;utilizing the historical data in the list of factors as a basis topredict locations of future events that have not yet occurred; based onthe predicted locations of the future events and the list of attributesdescribing attributes of the video devices, selecting a subset of thevideo devices from which to receive video capturing occurrence of thefuture events, the subset changes over time due to changes in the listof factors; displaying the video from the selected subset of the videodevices as a tour, the displayed video changing over time as theselected subset changes over time; wherein displaying video comprises:dividing the selected subset of the video devices into a plurality ofgroups; assigning, to each group in the plurality of groups, a displaypriority, the display priority indicating how often video from videodevices in that group should be displayed in the tour; and displayingloops of video in the tour, the video in a respective loop taken fromvideo devices in groups associated with the respective loop, the groupsassociated with the respective loop determined according to the displaypriority assigned to those groups; the method further comprising:receiving a first list of factors including first historical dataspecifying geographical areas in which at least one event has occurredin the past; predicting occurrence of a first possible future eventbased on the received first list of factors; selecting a first subset ofthe video devices based upon the received list of attributes and thefirst list of factors, the received list of attributes indicatingrespective locations of the video devices; in the tour, initiatingdisplay of images captured by video devices in the first subset todisplay occurrence of the first possible future event; receiving asecond list of factors including second historical data specifyinggeographical areas in which at least one event has occurred in the past;predicting occurrence of a second possible future event based on thereceived second list of factors; selecting a second subset of the videodevices based upon the received list of attributes and the second listof factors; in the tour, initiating display of images captured by videodevices in the second subset to display occurrence of the secondpossible future event.
 2. The method of claim 1 wherein continuouslyreceiving the list of factors comprises: receiving a first list offactors, the first list of factors describing a first set of events, anevent in the first set of events occurring at a point in time; andwherein selecting comprises: selecting a subset of the video devicesbased upon the received list of attributes and the received first listof factors; and wherein the method comprises: receiving event data, theevent data describing an occurrence of at least one event; creating asecond list of factors based on the first list of factors and thereceived event data, the second list of factors describing a second setof events, the second set of events includes at least one eventdescribed by the received event data; and selecting a subset of thevideo devices based upon the received list of attributes and the createdsecond list of factors.
 3. The method of claim 2 wherein receiving eventdata comprises: receiving event data, the received event data describingan occurrence of one or more events; and assigning a weight to one ormore items of received event data, an assigned weight corresponding tothe event described by that item of received event data; and whereinselecting comprises: selecting a subset of the video devices based uponthe received list of attributes and the created second list of factors,wherein weights assigned to events described by the second list offactors influence the selection of video devices included in the subsetof the video devices.
 4. The method of claim 1 comprising: prior toselecting, assigning a weight to at least one factor in the list offactors, an assigned weight corresponding to the event described by thatfactor; wherein selecting comprises: selecting a subset of the videodevices based upon the received list of attributes and the received listof factors, wherein the subset changes over time due to changes in thelist of factors, and wherein weights assigned to factors in the list offactors influence the selection of video devices included in the subsetof the video devices.
 5. The method of claim 1 wherein receiving a listof attributes comprises: receiving a list of attributes, the list ofattributes including one or more locations of a video device, a locationdescribing an area of interest to be included in a tour; and whereinselecting comprises: selecting a subset of the video devices based uponthe locations included in the received list of attributes and thereceived list of factors, wherein the subset changes over time due toone or more changes in the locations included in the list of attributes.6. The method of claim 1 wherein receiving a list of attributescomprises: receiving a list of attributes, the list of attributesdescribing video devices associated with recorded video; and whereincontinuously receiving a list of factors comprises: receiving eventdata, the event data describing occurrences of one or more events thatoccurred in the past and were captured on recorded video; and whereinselecting comprises: selecting a subset of the video devices based uponthe received list of attributes and the received event data, wherein thesubset changes over time due to one or more changes in the list ofattributes or in the received event data; and wherein displayingcomprises: displaying recorded video from the selected subset of thevideo devices as a tour, each item of recorded video in the tourbeginning at a first point in time prior to the occurrence of an eventcaptured on that recorded video and ending at a second point in timeafter the occurrence of the captured event.
 7. Computer-readable storagehardware having instructions stored thereon, the instructions, whencarried out by a processor, causes the processor to perform operationsof: receiving a list of attributes, the list of attributes describingattributes of video devices; continuously receiving a list of factors,the list of factors including historical data specifying areas in whichevents have occurred in the past; utilizing the historical data in thelist of factors as a basis to predict locations of future events thathave not yet occurred; based on the predicted locations of the futureevents and the list of attributes describing attributes of the videodevices, selecting a subset of the video devices from which to receivevideo, the subset changes over time due to changes in the list offactors; and displaying the video from the selected subset of the videodevices as a tour, the displayed video changing over time as theselected subset changes over time; wherein displaying the videocomprises: dividing the selected subset of the video devices into aplurality of groups, assigning, to each group in the plurality ofgroups, a display priority, the display priority indicating how oftenvideo from video devices in that group should be displayed in the tour,and displaying loops of video in the tour, the video in a respectiveloop taken from video devices in groups associated with the respectiveloop, the groups associated with the respective loop determinedaccording to the display priority assigned to those groups; receiving afirst list of factors including first historical data specifyinggeographical areas in which at least one event has occurred in the past;predicting occurrence of a first possible future event based on thereceived first list of factors; selecting a first subset of the videodevices based upon the received list of attributes and the first list offactors, the received list of attributes indicating respective locationsof the video devices; in the tour, initiating display of images capturedby video devices in the first subset to display occurrence of the firstpossible future event; receiving a second list of factors includingsecond historical data specifying geographical areas in which at leastone event has occurred in the past; predicting occurrence of a secondpossible future event based on the received second list of factors;selecting a second subset of the video devices based upon the receivedlist of attributes and the second list of factors; in the tour,initiating display of images captured by video devices in the secondsubset to display occurrence of the second possible future event.
 8. Acomputer system comprising: a memory; a processor; a network interface;a display; and an interconnection mechanism coupling the memory, theprocessor, the display, and the network interface, allowingcommunication there between; wherein the memory of the computer systemis encoded with a dynamic touring application, that when executed in theprocessor, provides a dynamic touring process that intelligently craftsa dynamic video tour using a plurality of video devices selected in realtime, by causing the computer system to perform operations of: receivinga list of attributes, the list of attributes describing attributes ofthe video devices; continuously receiving a list of factors, the list offactors including historical data specifying areas in which events haveoccurred in the past; utilizing the historical data in the list offactors as a basis to predict locations of future events that have notyet occurred; based on the predicted locations of the future events andthe list of attributes describing attributes of the video devices,selecting a subset of the video devices from which to receive video, thesubset changing over time due to changes in the list of factors; anddisplaying the video from the selected subset of the video devices as atour, the displayed video changing over time as the selected subsetchanges over time; wherein displaying the video comprises: dividing theselected subset of the video devices into a plurality of groups,assigning, to each group in the plurality of groups, a display priority,the display priority indicating how often video from video devices inthat group should be displayed in the tour, and displaying loops ofvideo in the tour, the video in a respective loop taken from videodevices in groups associated with the respective loop, the groupsassociated with the respective loop determined according to the displaypriority assigned to those groups; receiving a first list of factorsincluding first historical data specifying geographical areas in whichat least one event has occurred in the past; predicting occurrence of afirst possible future event based on the received first list of factors;selecting a first subset of the video devices based upon the receivedlist of attributes and the first list of factors, the received list ofattributes indicating respective locations of the video devices; in thetour, initiating display of images captured by video devices in thefirst subset to display occurrence of the first possible future event;receiving a second list of factors including second historical dataspecifying geographical areas in which at least one event has occurredin the past; predicting occurrence of a second possible future eventbased on the received second list of factors; selecting a second subsetof the video devices based upon the received list of attributes and thesecond list of factors; in the tour, initiating display of imagescaptured by video devices in the second subset to display occurrence ofthe second possible future event.
 9. The computer system of claim 8wherein continuously receiving a list of factors comprises: receiving afirst list of factors, the first list of factors describing a first setof events, an event in the first set of events occurring at a point intime; and wherein selecting comprises: selecting a subset of theplurality of video devices based upon the received list of attributesand the received first list of factors; and wherein the computer systemcomprises: receiving event data, the event data describing an occurrenceof one or more events; creating a second list of factors based on thefirst list of factors and the received event data, the second list offactors describing a second set of events, the second set of eventsincludes one or more events described by the received event data; andselecting a subset of the plurality of video devices based upon thereceived list of attributes and the created second list of factors. 10.The computer system of claim 9 wherein receiving event data comprises:receiving event data, the event data describing an occurrence of one ormore events; and assigning a weight to one or more items of receivedevent data, an assigned weight corresponding to the event described bythat item of received event data; and wherein selecting comprises:selecting a subset of the plurality of video devices based upon thereceived list of attributes and the created second list of factors,wherein weights assigned to events described by the second list offactors influence the selection of video devices included in the subsetof the plurality of video devices.
 11. The computer system of claim 8comprising: prior to selecting, assigning a weight to one or morefactors in the list of factors, an assigned weight corresponding to theevent described by that factor; wherein selecting comprises: selecting asubset of the plurality of video devices based upon the received list ofattributes and the received list of factors, wherein the subset changesover time due to one or more changes in the list of factors, and whereinweights assigned to factors in the list of factors influence theselection of video devices included in the subset of the plurality ofvideo devices.
 12. The computer system of claim 8 wherein receiving alist of attributes comprises: receiving a list of attributes, the listof attributes including one or more locations of a video device, alocation describing an area of interest to be included in a tour; andwherein selecting comprises: selecting a subset of the plurality ofvideo devices based upon the locations included in the received list ofattributes and the received list of factors, wherein the subset changesover time due to one or more changes in the locations included in thelist of attributes.
 13. The computer system of claim 8 wherein receivinga list of attributes comprises: receiving a list of attributes, the listof attributes describing video devices associated with recorded video;and wherein continuously receiving a list of factors comprises:receiving event data, the event data describing occurrences of one ormore events that occurred in the past and were captured on recordedvideo; and wherein selecting comprises: selecting a subset of theplurality of video devices based upon the received list of attributesand the received event data, wherein the subset changes over time due toone or more changes in the list of attributes or in the received eventdata; and wherein displaying comprises: displaying recorded video fromthe selected subset of the plurality of video devices as a tour, eachitem of recorded video in the tour beginning at a first point in timeprior to the occurrence of an event captured on that recorded video andending at a second point in time after the occurrence of the capturedevent.
 14. The method as in claim 1 further comprising: selecting thefirst subset of the video devices and the second subset of devices basedupon dynamic weights assigned to the events.
 15. The method as in claim14, wherein displaying video comprises: displaying the loops of video inthe tour such that a group with a higher priority is always included ineach of the loops, and a group with a lower priority is included infewer loops than every one of the loops.
 16. The method as in claim 14,wherein the list of factors indicates when and how long a respectiveevent is to occur in the future.
 17. The method as in claim 1 furthercomprising: wherein selecting the subset of video devices includesdynamically selecting, over time and due to changes in the list offactors, different subsets of the video devices based upon the receivedlist of attributes and the changes in the received list of factors; andwherein displaying video includes displaying video from the differentsubsets of the video devices in the tour.
 18. The method as in claim 17,wherein the list of attributes indicates locations of the video devices;and wherein the list of factors indicates different events to becaptured by the video devices.
 19. The method as in claim 1, wherein thelist of attributes indicates locations of the video devices in ageographical region; and wherein the list of factors further indicatesat least one future event that is scheduled to occur at a specifiedtime.
 20. The method as in claim 1, wherein the list of factors includestime-based data indicating scheduled events and when the scheduledevents will occur; assigning weight values to the scheduled events asspecified by the list of factors; and selecting the subset based atleast in part on the assigned weight values of the scheduled events. 21.The method as in claim 1, wherein the list of factors changes based on atime of day.
 22. The method as in claim 1 further comprising: adjustingweight values assigned to the video devices based on a history of eventsthat previously occurred in a vicinity of the video devices; andselecting the subset based at least in part on the weight valuesassigned to the video devices.
 23. The method as in claim 1, wherein thefuture events are possible future events that are predicted to occurbased on the historical data; wherein the video captures occurrence ofthe possible future events; and wherein displaying the video as a tourincludes displaying the video of the possible future events after thepossible future events occur.
 24. The method as in claim 1 furthercomprising: displaying the tour as a predictive tour, the video producedby the selected subset of the video devices capturing images ofgeographical areas where the future events are predicted to occur. 25.The method as in claim 24, wherein the future events are possible futureevents that are predicted to occur based on the historical data, themethod further comprising: displaying the tour to include images of thegeographical areas where the future events are predicted to occur. 26.The computer system as in claim 8, wherein the computer system furtherperforms operations of: displaying the tour as a predictive tour, thevideo produced by the selected subset of the video devices capturingimages of geographical areas where the future events are predicted tooccur.
 27. The computer system as in claim 26, wherein the future eventsare possible future events that are predicted to occur based on thehistorical data, the computer system further supporting operations of:displaying the predictive tour to include images of the geographicalareas where the future events are predicted to occur.